This invention relates to a method and apparatus for compressing data. More specifically, this invention relates to post-processing of vector quantized signals.
Vector quantization is a data compression technique. A data signal to be compressed is expressed as a series of input vectors where each vector is an ordered set of individual data elements. A quantizer compares each input vector to a set of codebook vectors and identifies one closely matching codebook vector. The quantizer then generates a new signal consisting of the series ID codes (sometimes referred to as addresses) for the codebook vectors which matched the input vectors. In order to utilize clear terminology, data in its form before quantization shall be designated as information in the raw data domain, and ID codes shall be designated as information in the codebook domain.
The computational complexity of prior vector quantizers has created a perception that raw data must be heavily processed before quantization. This preprocessing is believed to reduce the workload on the vector quantizer, and make vector quantization a practicable compression technique. For example, Murakami et. al. U.S. Pat. No. 4,710,812 performs numerous operations on information before the quantization step. A mean value separation circuit normalizes vectors by subtracting the mean value of scalars in a vector from each and every scalar. Additionally, the apparatus computes an inner product between raw data vectors from successive frames to detect changes. These operations are performed on vectors in the raw data domain. The article entitled "Vector Predictive Coding of Speech at 16 Kbits/s" by Cupperman and Gersho, IEEE Transactions on Communications. vol. COM-33, No. 7, Jul. 1985 provides another example. A predictive coder operates on information in the raw data domain to generate a prediction of the next raw data vector in a series. The prediction is subtracted from the actual vector when it arrives, and only the difference is quantized. Conventional vector quantizer systems virtually ignore processing in the codebook domain.